package com.sheng.mapper;

import java.util.List;

import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Select;

import com.sheng.entity.Product;

@Mapper
public interface ProductMapper {

	/**
	 * 新增产品
	 * @param productName
	 * @param merchantId
	 * @param originalPrice
	 * @param salePrice
	 * @param costDetails
	 * @param productDescribe
	 */
	@Select("insert into biz_product ("
			+ "product_name, merchant_id, original_price, sale_price, cost_details, "
			+ "product_describe, shelf_status, is_deleted, create_time) "
			+ "VALUES (#{productName},#{merchantId},#{originalPrice},#{salePrice},#{costDetails},"
			+ "#{productDescribe},'off','N',now())")
	void createProduct(@Param("productName") String productName,
			@Param("merchantId") String merchantId,
			@Param("originalPrice") Integer originalPrice,
			@Param("salePrice") Integer salePrice,
			@Param("costDetails") String costDetails,
			@Param("productDescribe") String productDescribe);
	
	/**
	 * 删除产品
	 * @param productId 产品id
	 */
	@Select("update biz_product set is_deleted = 'Y' where product_id = #{productId}")
	void removeProduct(@Param("productId") Integer productId);
	
	/**
	 * 获取产品信息详情
	 * @param productId 产品id
	 * @return
	 */
    @Select("select * from biz_product where product_id = #{productId}")
    Product getProduct(@Param("productId") Integer productId);
    
    /**
     * 列表查询
     * @return
     */
    @Select("select * from biz_product")
    List<Product> findProductAllList();
    
    /**
     * 通过产品id获取产品信息（xml实现）
     * @param productId
     * @return
     */
    Product selectByPrimaryKey(Integer productId);
    
    /**
     * 更新产品信息 （xml实现）
     * @param product
     */
    void updateProduct(Product product);

    /**
     * 动态条件查询产品信息列表
     * productName
     * merchantId
     * @param product
     * @return
     */
    List<Product> findProductListByCondition(Product product);
    
    
}